#ifndef		__ENTITY_Visitor_IMP__
#define		__ENTITY_Visitor_IMP__


#include "EntityVisitorIf.h"

//
//	Entity Visitor Interface
//	For iterating all entities in the entity container or manage with a for each interface.
//
class TCOM_API  EntityVisitorImp : public IEntityVisitor
{
public:
	virtual	~EntityVisitorImp()	{}

	//
	//	visit player entity
	virtual bool visitP(EntityP& e);

	//
	//	visit role entity
	virtual bool visitR(EntityR& e);

	//	
	//	visit monster entity
	virtual bool visitM(EntityM& e);

	//
	//	visit destructible entity
	virtual bool visitD(EntityD& e);

	//
	//	visit static entity
	virtual bool visitS(EntityS& e);

	//
	//	visit NPC entity
	virtual bool visitN(EntityN& e);

	//	visit other entity
	virtual bool visit(EntityImp& e);
};

#endif
